package com.fosss.band.service;

import com.fosss.band.entity.Band;
import com.fosss.band.entity.dto.BandDto;
import com.fosss.band.entity.vo.BandVo;
import com.fosss.band.entity.vo.MemberVo;
import com.fosss.band.utils.Result;

import java.util.List;

/**
 * @author: fosss
 * Date: 2023/12/27
 * Time: 20:32
 * Description:
 */
public interface BandService {
    /**
     * 分页查询乐队信息
     */
    Result getBandListPage(Integer userId, Integer page, Integer size, String name);

    /**
     * 删除乐队
     */
    Result removeById(Integer id);

    /**
     * 新增乐队
     */
    Result add(BandVo bandVo);

    /**
     * 查询单个乐队
     */
    Result getBandById(Integer id);

    /**
     * 根据乐队id查询成员
     */
    Result getMembersByBandId(Integer bandId);

    /**
     * 更新乐队信息
     * @param band
     */
    Result updateBand(Band band);

    /**
     * 删除成员
     */
    Result deleteMember(Integer id);

    /**
     * 查询成员信息
     */
    Result selectMember(Integer id);

    /**
     * 编辑成员
     */
    Result updateMember(MemberVo memberVo);

    /**
     * 添加成员
     */
    Result addMember(MemberVo memberVo);

    /**
     * 查询所有乐队
     */
    Result selectAll();

    /**
     * 批量查询乐队信息
     */
    List<BandDto> getBandDtoByIds(List<Integer> ids);
}
